#include <iostream>
using namespace std;

class A{
    public:
        int value_a;
        A(int a):value_a(a){}
        ~A(){}
};

class B:A{
    public:
        // 需要在子类的构造函数的初始化表中 显性调用父类的构造函数并传参
        B(int a):A(a){}
};

// 之所以两次继承 是为了区分 protected 和 private
class C:public B{
    public:
        C(int a):B(a){}
        void show(){
            // cout << value_a << endl; // 在C中访问不了value_a
            // 说明 B 继承自 A 的时候 使用的 private 方式继承的
        }
};

int main(int argc, const char *argv[]){
    C c1(100);
    c1.show();

    return 0;
}